from flask import Flask,render_template,request ,escape
import geo
import walk

app = Flask(__name__)


# @app.route('/')
# def hello_world():
#     return 'Hello World!'

@app.route('/')
@app.route('/entry')
def entry01() -> 'html':
    title = '欢迎来到高德步行API'
    return render_template('entry.html',
                           the_title = title)



@app.route('/results', methods=['POST'])
def results01() -> 'html':
    key = request.form['key']
    start_address = request.form['start_address']
    end_address = request.form['end_address']
    title = '查询结果'
    df = walk.walk01(key, start_address, end_address)
    results = df.loc[:, ['instruction', 'distance', 'duration' , 'action']]
    results.columns = ['指引', '路程', '时间' , '弯道']
    total_walk = walk.total_walk(df)
    total_walk_time = walk.total_walk_time(df)
    route = results['指引'].tolist()
    walk.log_request(request, route)
    return render_template('results.html',
                           the_title=title,
                           the_start_address=start_address,
                           the_end_address=end_address,
                           the_results=results,
                           the_html=results.to_html(index=False),
                           the_total_walk=total_walk,
                           the_total_walk_time=total_walk_time,)


@app.route('/viewlog')
def viewlog01() -> 'html':
    contents = []
    with open('walking.log', 'r') as log:
        for line in log:
            contents.append([])
            for item in line.split('|'):
                contents[-1].append(escape(item))
    titles = ('用户输入数据', '远程地址', '用户代理', '查询结果')
    return render_template('viewlog.html',
                           the_title='查看日志',
                           the_row_titles=titles,
                           the_data=contents,)


if __name__ == '__main__':
    app.run()
